Defines a link carrying an arbitrary number of joint coordinate frames. This type is suitable for the ternary and higher-order links found in closed-loop mechanisms.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=real64), | public | :: | cg(3) |
The x-y-z location of the CG relative to the body coordinate frame. |
|||
| real(kind=real64), | public | :: | inertia(3,3) |
The 3-by-3 inertia tensor as measured about the CG of the body. |
|||
| real(kind=real64), | public | :: | mass |
The mass of the body. |
Initializes a new multi_joint_link instance.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:,:,:) | :: | frames |
A 4-by-4-by-N array containing the transformation matrix for each of the N joint coordinate frames. Each matrix maps coordinates from the corresponding joint frame into the link's body frame. |
|
| real(kind=real64), | intent(in), | optional | :: | mass |
The mass of the link. If no value is specified, a value of 1 is used. |
|
| real(kind=real64), | intent(in), | optional | :: | inertia(3,3) |
The 3-by-3 inertia tensor. If not specified, an identity matrix is used. |
|
| real(kind=real64), | intent(in), | optional | :: | cg(3) |
The x-y-z location of the CG relative to the link's body coordinate frame. If not supplied, the CG is set to (0, 0, 0). |
The resulting multi_joint_link object.
Gets the number of joint coordinate frames carried by the link.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(multi_joint_link), | intent(in) | :: | this |
The multi_joint_link object. |
The number of joint coordinate frames.
Gets the transformation matrix relating the requested joint coordinate frame to the link's body coordinate frame.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(multi_joint_link), | intent(in) | :: | this |
The multi_joint_link object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The index of the joint coordinate frame (1 = first frame). |
The resulting 4-by-4 transformation matrix.
Sets the transformation matrix relating the requested joint coordinate frame to the link's body coordinate frame.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(multi_joint_link), | intent(inout) | :: | this |
The multi_joint_link object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The index of the joint coordinate frame (1 = first frame). |
||
| real(kind=real64), | intent(in) | :: | x(4,4) |
The 4-by-4 transformation matrix. |